package com.lanou.two;

/**
 * 编写一个Java应用程序，该程序包括3个类：Monkey类、People类和主类E。要求：
 * 
 * (1) Monkey类中有个构造方法：Monkey (String s)，并且有个public void
 * speak()方法，在speak方法中输出“咿咿呀呀......”的信息。
 * 
 * (2)People类是Monkey类的子类，在People类中重写方法speak(),在speak方法中输出“小样的，不错嘛！会说话了！”的信息。
 * 
 * (3)在People类中新增方法void think()，在think方法中输出“别说话！认真思考！”的信息。
 * 
 * (4)在主类E的main方法中创建Monkey与People类的对象类测试这2个类的功能
 * 
 * @param args
 */
public class E {

	public static void main(String[] args) {
		Monkey monkey = new Monkey("凯撒");
		monkey.speak();
		
		Monkey people = new People("张三");
		System.out.println(people.getS());
		people.speak();
		((People)people).think();
	}

}

class Monkey {
	private String s;

	public Monkey(String s) {
		this.s = s;
	}

	public String getS() {
		return s;
	}

	public void setS(String s) {
		this.s = s;
	}

	public void speak() {
		Class clazz = String.class;
		final int i;
		i = 12;
		System.out.println("咿咿呀呀......");
	}
}

class People extends Monkey {
	public People(String s) {
		super(s);
	}

	/**
	 * 重写以后的方法可以不用写@Override  注解
	 * 但是写了@Override，说明这个方法必定是重写的方法
	 */
	@Override
	public void speak() {
		System.out.println("小样的，不错嘛！会说话了！");
	}
	
	public void think() {
		System.out.println("别说话！认真思考！");
	}
}
